package cn.lzy.conditional;

import org.springframework.context.annotation.Condition;
import org.springframework.context.annotation.ConditionContext;
import org.springframework.core.type.AnnotatedTypeMetadata;

/**
 * @Description Linux系统匹配条件
 * @Author lzy
 * @Date 2023/11/28 11:29
 * @Version
 **/
public class LinuxCondition implements Condition {

    /**
     * 这个方法实际上就是一个匹配方法，如果这个方法返回 true，则表示匹配成功，否则匹配失败
     * @param conditionContext
     * @param annotatedTypeMetadata
     * @return
     */
    @Override
    public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
        // 获取当前操作系统的名称
        String osName = conditionContext.getEnvironment().getProperty("os.name");
        return osName.toLowerCase().contains("linux") || osName.toLowerCase().contains("mac");
    }
}
